<?php 
/**
 * 商品属性列表模型
 * @author 杨帆 
 */
class GoodsAttrModel extends Model{
    public $table = 'goods_attr';
    
    public $auto = array();

     /**
     * 添加
     */
    public function addData($gid){
        //组合数据方法
        $data = $this->_createData($_POST,$gid);
        //保证数组不为null；
        $data = isset($data) ? $data : array();
        //循环数组判断
        foreach ($data as $v){ 
           //在数据库增加数据，并返回新的自增id;
           $this->add($v);  
        }
        return true;
    }
    
    /**
     * 编辑数据
     */
    public function editData($gid){
//      p($gid);die;
        //先删除
        $this->where("goods_gid={$gid}")->delete();
        //在添加
        $this->addData($gid);
        
    }
    /**
     * 组合数据
     */
    public function _createData($data,$gid){
//      p($data);p($gid);die;
        //插入属性**
        //定义空数组
        $result = array();
        //保证数组不为null；
        $attr = isset($data['attr']) ? $data['attr'] : array();
        //利用循环插入属性
        foreach ($attr as $taid => $value) {
            //如果不为空才插入
            if($value){
                $arr1 = array(
                    'ganame' => $value,//属性值
                    'add_price' => 0,//附加价格
                    'attrid' => (int)$taid,//属性id
                    'goods_gid' => (int)$gid//商品id
                ); 
                $result[] = $arr1;
            }
        }
        
        //插入规格**
        //保证数组不为null；
        $spec = isset($data['spec']) ? $data['spec'] : array();
        //利用循环插入规格
        foreach ($spec as $taid => $v) {
            //这个地方为什么要循环，看打印的post
            foreach ($v['value'] as $key => $value) {
                //如果不为空才插入
                if($value){
                    $arr2 = array(
                        'ganame' => $value,//属性值
                        'add_price' => (int)$v['price'][$key],//附加价格
                        'attrid' => (int)$taid,//属性id
                        'goods_gid' => (int)$gid//商品id
                    );   
                    $result[] = $arr2; 
                }
            }    
        }     
        return $result; 
    }
 }